package dryven.request.http;

import java.io.InputStream;

import dryven.model.di.LocalThreadStorage;

public interface Request extends LocalThreadStorage {
	public HttpMethod getMethod();
	public String getHeader(String name);
	public String getURLParam(String name);
	public String getBodyParam(String name);
	public Iterable<String> getHeaderNames();
	public Iterable<String> getURLParamNames();
	public Iterable<String> getBodyParamNames();
	public Cookie getCookie(String name);
	public Iterable<Cookie> getCookies();
	public String getRequestURI();
	public String getLocalApplicationURL();
	public Session getSession();
	public String getRemoteHost();
	public int getRemotePort();
	public String getLocalName();
	public int getLocalPort();
	public int getContentLength();
	public InputStream getInputStream();
	public String getRemoteUser();
	public enum HttpMethod {Get, Post, Put, Delete, Head};
}
